|
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ОТДЕЛ Biblioteka+;
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(* НАЗНАЧЕНИЕ: динамически подключаемая библиотека для "ИспБиблиотеки" *)
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ИСПОЛЬЗУЕТ
ОБХОД,
Асм ИЗ "...\Отделы\Иное\",
Вывод ИЗ "...\Отделы\Обмен\";
ПЕР (* приёмники загрузки ДПБ *)
hInstance,reason,param:ЦЕЛ;
ВИД
Набор = НАБОР
ц:ЦЕЛ;
в:ВЕЩ;
КОН;
ЗАДАЧА GetModuleFileName(
hModule:ЦЕЛ;
lpFilename+:ЦЕПЬ;
nSize:ЦЕЛ
):ЦЕЛ; ВЫЗОВ "GetModuleFileNameW" ИЗ "kernel32.dll";
(*────────────────────────────────────────────────────────────────────────────*)
ЗАДАЧА* Zadacha1-(адрЦепи:ЦЕЛ);
ПЕР
имя:ЦЕПЬ[300];
знак:ЗНАК;
поз:ЦЕЛ;
ответ:ЦЕЛ;
УКАЗ
ответ:=GetModuleFileName(hInstance,имя,РАЗМЕР(имя));
Вывод.Цепь("Работает 'Zadacha1' из библиотеки '");
Вывод.Цепь(имя);
Вывод.Цепь("'.^");
(* переписываем входную цепочку *)
поз:=0;
ПОВТОРЯТЬ
ОБХОД.ИзПамяти(адрЦепи,знак);
имя[поз]:=знак;
УВЕЛИЧИТЬ(адрЦепи,2);
УВЕЛИЧИТЬ(поз)
ДО знак = 0X;
(* вывод значения *)
Вывод.Цепь("Значение <цепь>: '");
Вывод.Цепь(имя);
Вывод.Цепь("'.^^");
КОН Zadacha1;
(*────────────────────────────────────────────────────────────────────────────*)
ЗАДАЧА* Zadacha2-(набор+:Набор);
УКАЗ
Вывод.Цепь("Работает 'Zadacha2' из той же библиотеки.^");
Вывод.ЧВещ("Значение <набор>: (%f;%f).^^",набор.ц,набор.в,0,0);
(* изменим значение *)
набор.ц:=3;
набор.в:=4;
КОН Zadacha2;
(*────────────────────────────────────────────────────────────────────────────*)
УКАЗ (* считываем приёмники ДПБ *)
Асм.ПриёмникиДПБ(hInstance,reason,param)
КОН Biblioteka.
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com или Издателю Глагола:
|
|